package Modelo;

import java.util.ArrayList;



/**
 * @author Thiago Vinicius Gaidzinski sfpsfsasfa
 * @version 1.0
 * @created 23-jun-2012 13:10:28
 */
public class Empresa extends Pessoa {

   // atributos da classe
   private ArrayList<Cliente> listClientes;
   private ArrayList<Jornada> listJornadas;
   private ArrayList<Manutencao> listManutencoes;
   private ArrayList<Motorista> listMotoristas;
   private ArrayList<Taxi> listTaxis;
   private Inspetor objInspetor;
   public Inspetor objInspetorEmpresa;
   public Motorista objMotorista;
   public Taxi objTaxi;

   /**
    * Construtor da classe Empresa extends Pessoa
    * 
    * @param listClientes
    * @param listJornadas
    * @param listManutencoes
    * @param listMotoristas
    * @param listTaxis
    * @param objInspetor
    * @param objInspetorEmpresa
    * @param objMotorista
    * @param objTaxi
    * @param codigo
    * @param cpf
    * @param endereco
    * @param nome
    * @param tipo_pessoa 
    */
   public Empresa( ArrayList<Cliente> listClientes, ArrayList<Jornada> listJornadas, ArrayList<Manutencao> listManutencoes, ArrayList<Motorista> listMotoristas, ArrayList<Taxi> listTaxis, Inspetor objInspetor, Inspetor objInspetorEmpresa, Motorista objMotorista, Taxi objTaxi, int codigo, String cpf, String endereco, String nome, String tipo_pessoa ) {
      super( codigo, cpf, endereco, nome, tipo_pessoa );
      listClientes = new ArrayList<Cliente>();
      listJornadas = new ArrayList<Jornada>();
      listManutencoes = new ArrayList<Manutencao>();
      listMotoristas = new ArrayList<Motorista>();
      listTaxis = new ArrayList<Taxi>();
      setObjInspetor( objInspetor );
      setObjInspetorEmpresa( objInspetorEmpresa );
      setObjMotorista( objMotorista );
      setObjTaxi( objTaxi );
   }
   
   // métodos acessores e modificadores
   public ArrayList<Cliente> getListClientes() {
      return listClientes;
   }

   public void setListClientes( ArrayList<Cliente> listClientes ) {
      this.listClientes = listClientes;
   }

   public ArrayList<Jornada> getListJornadas() {
      return listJornadas;
   }

   public void setListJornadas( ArrayList<Jornada> listJornadas ) {
      this.listJornadas = listJornadas;
   }

   public ArrayList<Manutencao> getListManutencoes() {
      return listManutencoes;
   }

   public void setListManutencoes( ArrayList<Manutencao> listManutencoes ) {
      this.listManutencoes = listManutencoes;
   }

   public ArrayList<Motorista> getListMotoristas() {
      return listMotoristas;
   }

   public void setListMotoristas( ArrayList<Motorista> listMotoristas ) {
      this.listMotoristas = listMotoristas;
   }

   public ArrayList<Taxi> getListTaxis() {
      return listTaxis;
   }

   public void setListTaxis( ArrayList<Taxi> listTaxis ) {
      this.listTaxis = listTaxis;
   }

   public Inspetor getObjInspetor() {
      return objInspetor;
   }

   public void setObjInspetor( Inspetor objInspetor ) {
      this.objInspetor = objInspetor;
   }

   public Inspetor getObjInspetorEmpresa() {
      return objInspetorEmpresa;
   }

   public void setObjInspetorEmpresa( Inspetor objInspetorEmpresa ) {
      this.objInspetorEmpresa = objInspetorEmpresa;
   }

   public Motorista getObjMotorista() {
      return objMotorista;
   }

   public void setObjMotorista( Motorista objMotorista ) {
      this.objMotorista = objMotorista;
   }

   public Taxi getObjTaxi() {
      return objTaxi;
   }

   public void setObjTaxi( Taxi objTaxi ) {
      this.objTaxi = objTaxi;
   }

   /**
    * Regista o cliente na empresa
    * 
    * @param objCliente
    */
   public void registraCliente( Cliente objCliente ){
      listClientes.add( objCliente );
   }

   /**
    * Registra a corrida
   * 
   * @param objCliente
   */
   public void registraCorrida( Cliente objCliente ){

   }

   /**
    * Registra a entrada da manutenção do carro
    */
   public void registraEntradaManutencao(){

   }

   /**
    * Registra inspetor
    */
   public void registraInspetor(){

   }

   /**
    * Registra a jornada
    */
   public void registraJornada(){

   }

   /**
    * Registra o motorista
    */
   public void registraMotorista(){

   }

   /**
    * Registra o Taxi
    */
   public void registraTaxi(){

   }

   /**
    * Registra a volta da manutenção do carro
    */
   public void registraVoltaManutencao(){

   }

   /**
    * Relatório dos clientes que mais utilizam o serviço da empresa
    */
   public void relatorioClientes(){

   }

   /**
    * Relatório de corridas por período
   * 
   * @param periodo
   */
   public void relatorioCorridas(String periodo){

   }

   /**
    * Relatório de Manutenções dos taxis
    */
   public void relatorioManutencoes(){

   }

   /**
    * Relatório de informações por motorista
   * 
   * @param objMotorista
   */
   public void relatorioMotorista(Motorista objMotorista){

   }

   /**
    * Relatório com os motoristas que mais trabalham no periodo noturno
    */
   public void relatorioMotoristasNoturnos(){

   }
}//end Empresa